package com.shujia.wyh.day27.network.udpcoding;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

/*
        UDP协议发送数据的步骤：
            1、创建发送端的Socket对象
            2、创建数据，并将数据打包
            3、调用Socket对象中的一个方法，将数据包发送出去
            4、释放资源，关闭Socket对象
 */
public class SendDemo1 {
    public static void main(String[] args) throws Exception {
        //创建发送端的Socket对象
        //DatagramSocket()
        //构造数据报套接字并将其绑定到本地主机上的任何可用端口。
        DatagramSocket ds = new DatagramSocket();

        //将数据转成字节数组
        byte[] bytes = "你好，数加科技".getBytes();
        //获取字节数组的大小
        int length = bytes.length;
        //IP地址对象（你要发送给谁的ip地址）
        InetAddress address = InetAddress.getByName("192.168.10.112");
        //指定接收端的端口号
        int port = 10086;

        //创建一个数据包
        //DatagramPacket(byte[] buf, int length, InetAddress address, int port)
        //构造用于发送长度的分组的数据报包 length指定主机上到指定的端口号。
        DatagramPacket dp = new DatagramPacket(bytes, length, address, port);

        //调用Socket对象中的一个方法，将数据包发送出去
        //void send(DatagramPacket p)
        //从此套接字发送数据报包。
        ds.send(dp);

        //释放资源，关闭Socket对象
        ds.close();
    }
}
